Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

datatype: handle concrete type intersections that happen #49017

Merged
merged 1 commit into from
Mar 20, 2023

Conversation

vtjnash
Copy link
Sponsor Member

@vtjnash vtjnash commented Mar 15, 2023

This is actually very similar to the current might_intersect_concrete, but for subtyping and memoized. It replaces cached_by_hash, which was a confusingly-named incomplete prior work towards this.

This gives NamedTuple{(:names)} hashes, which lets them go into the faster type lookup tables. This is a fairly common type for some packages to create, so we need this to avoid polluting our cache tables.

Reverts efafd83, since these types have no intersection, the morespecific algorithm is no longer required to have any opinion on them.

This is actually very similar to the current might_intersect_concrete,
but for subtyping and memoized. It replaces cached_by_hash, which was a
confusingly-named incomplete prior work towards this.

This gives NamedTuple{(:names)} hashes, which lets them go into the
faster type lookup tables. This is a fairly common type for some
packages to create, so we need this to avoid polluting our cache tables.

Reverts efafd83, since these types have
no intersection, the morespecific algorithm is no longer required to
have any opinion on them.
@vtjnash vtjnash added needs nanosoldier run This PR should have benchmarks run on it needs pkgeval Tests for all registered packages should be run with this change labels Mar 15, 2023
@JeffBezanson JeffBezanson added the compiler:latency Compiler latency label Mar 17, 2023
@vtjnash
Copy link
Sponsor Member Author

vtjnash commented Mar 17, 2023

@nanosoldier runtests()

@vtjnash
Copy link
Sponsor Member Author

vtjnash commented Mar 17, 2023

@nanosoldier runbenchmarks(!"scalar", vs=":master")

@nanosoldier
Copy link
Collaborator

Your benchmark job has completed - possible performance regressions were detected. A full report can be found here.

@nanosoldier
Copy link
Collaborator

Your package evaluation job has completed - possible new issues were detected.
A full report can be found here.

@vtjnash vtjnash removed needs nanosoldier run This PR should have benchmarks run on it needs pkgeval Tests for all registered packages should be run with this change labels Mar 20, 2023
@vtjnash vtjnash merged commit 6337cf6 into master Mar 20, 2023
@vtjnash vtjnash deleted the jn/concrete-cache-intersections branch March 20, 2023 17:34
Xnartharax pushed a commit to Xnartharax/julia that referenced this pull request Apr 19, 2023
…9017)

This is actually very similar to the current might_intersect_concrete,
but for subtyping and memoized. It replaces cached_by_hash, which was a
confusingly-named incomplete prior work towards this.

This gives NamedTuple{(:names)} hashes, which lets them go into the
faster type lookup tables. This is a fairly common type for some
packages to create, so we need this to avoid polluting our cache tables.

Reverts efafd83, since these types have
no intersection, the morespecific algorithm is no longer required to
have any opinion on them.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
compiler:latency Compiler latency
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants